package com.atguigu.ggkt.exception;

import com.atguigu.ggkt.result.Result;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;

/**
 * 统一异常处理类
 */
@ControllerAdvice//aop
public class GlobalExceptionHandler {
    //全局：
    @ExceptionHandler(Exception.class)//针对异常进行处理
    @ResponseBody//能返回数据
    public Result error(Exception e){
        System.out.println("全局。。");
        e.printStackTrace();
        return Result.fail(null).message("执行了全局异常处理");
    }

    //特定：
    @ExceptionHandler(ArithmeticException.class)//针对特定异常处理
    @ResponseBody
    public Result error(ArithmeticException e){
        System.out.println("特定。。");
        e.printStackTrace();
        return Result.fail(null).message("执行了特定异常处理");
    }

    //自定义：
    @ExceptionHandler(GgktException.class)//针对特定异常处理
    @ResponseBody
    public Result error(GgktException e){
        System.out.println("自定义。。");
        e.printStackTrace();
        return Result.fail(null).message("自定义异常处理");
    }
}
